<?php
/*
	Copyright 2006, 2007, 2008, 2009, 2010 Bastiaan Grutters
    
    This file is part of Ages of Strife website.

    Ages of Strife website is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Ages of Strife website is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Ages of Strife website.  If not, see <http://www.gnu.org/licenses/>.
 */
include( '../global/initialize.php' );

if( isset( $_POST[ 'trashed' ] ) ) {
	$hide = 0;
	$trashed = true;
}
else {
	$hide = 1;
	$trashed = false;
}

if( !isset( $_POST[ 'page' ] ) ) {
	$page = -1;
}
else {
	$page = $_POST[ 'page' ];
}

$query = "SELECT threaded_letters FROM users WHERE user_id = " . $_SESSION[ 'user_id' ];
$result = mysql_query( $query ) or die( "Query failed : " . mysql_error() );
$row = mysql_fetch_array( $result, MYSQL_ASSOC );
if( $row[ 'threaded_letters' ] == 1 ) {
	$threaded = true;
	$per_page = 10;
}
else {
	$threaded = false;
	$per_page = 25;
}

if( $threaded ) {
	$sender = "";
	if( !$trashed ) {
		$sender = " OR sender = " . $_SESSION[ 'ruler_id' ];
	}
	$query = "SELECT * FROM messages " .
				"WHERE ( message_id IN ( SELECT message_id FROM message_ruler WHERE hide = " . ( 1 - $hide ) . " AND ruler_id = " . $_SESSION[ 'ruler_id' ] . " )$sender ) " . 
				"AND parent = -1 " .
				"ORDER BY turn DESC, timestamp DESC " .
				"LIMIT " . ( ( $page - 1 ) * $per_page ) . ', '. ( $per_page );
}
else {
	$threaded = false;
	$query = "SELECT * FROM messages JOIN message_ruler ON message_ruler.message_id = messages.message_id " .
			"WHERE ruler_id = " . $_SESSION[ 'ruler_id' ] . " AND hide = " . ( 1 - $hide ) . " " .
			"ORDER BY turn DESC, timestamp DESC " .
			"LIMIT " . ( ( $page - 1 ) * $per_page ) . ', '. ( $per_page );
}

//$query = "SELECT * FROM messages JOIN message_ruler ON message_ruler.message_id = messages.message_id WHERE ruler_id = " . $_SESSION[ 'ruler_id' ] . " AND hide = " . ( 1 - $hide ) . " ORDER BY turn DESC, timestamp DESC";
$result = mysql_query( $query ) or die( "Query failed : " . mysql_error() );
$num = mysql_numrows( $result );
$action = "";

if( isset( $_POST[ 'unread' ] ) ) {
	$action = "unread";    	
}
else if( isset( $_POST[ 'read' ] ) ) {
	$action = "read";
}
else if( isset( $_POST[ 'hide' ] ) ) {
	$action = "hide";
}
else {
	$nothing = true;
}

if( !isset( $nothing ) ) {
	$i = 0;
	while ( $i < $num ) {
		if( isset( $_POST[ $i ] ) ) {
			if( $action == "unread" ) {
				if( $threaded ) {
					setThreaded( mysql_result( $result, $i, "message_id" ), 0 );
				}
				else {
					$query = "UPDATE message_ruler SET seen = 0 WHERE message_id = " . mysql_result( $result, $i, "message_id" ) . " AND ruler_id = " . $_SESSION[ 'ruler_id' ];
					mysql_query( $query ) or die( "Query failed : " . mysql_error() );
				}
			}
			else if( $action == "read" ) {
				if( $threaded ) {
					setThreaded( mysql_result( $result, $i, "message_id" ), 1 );
				}
				else {
					$query = "UPDATE message_ruler SET seen = 1 WHERE message_id = " . mysql_result( $result, $i, "message_id" ) . " AND ruler_id = " . $_SESSION[ 'ruler_id' ];
					mysql_query( $query ) or die( "Query failed : " . mysql_error() );
				}
			}
			else if( $action == "hide" ) {
				$query = "UPDATE message_ruler SET hide = $hide WHERE message_id = " . mysql_result( $result, $i, "message_id" ) . " AND ruler_id = " . $_SESSION[ 'ruler_id' ];
				mysql_query( $query ) or die( "Query failed : " . mysql_error() );
			}
		}
	    $i ++;
	}
}
if( $hide == 1 ) {
	header( "Location: letters.php?page=" . $page );
}
else {
	header( "Location: letters.php?trashed=view&page=" . $page );
}
?>
